home *** CD-ROM | disk | FTP | other *** search
-
- User Document for EyeCandy01 for the
- Commodore AMIGA "family" of computers. 94-07-25
-
-
- I. Introduction to EyeCandy
- ---------------------------
-
- EyeCandy is a program that generates various designs to please
- the eye. This program started life as "SpiroDraw", which simulates
- the spiral drawing toy called SpiroGraph (tm). There are additional
- designs that may now be created that I have called:
-
- "YarnBall" and "CircleStar"
-
- As time goes on, I hope to add more designs into the program.
-
- It is almost as rewarding to watch the design being drawn by
- the computer as I remember it being to actually draw the designs
- oneself, using the pins, wheels, rulers, etc. It is certainly more
- accurate since the computer does not have to worry about holding
- all drawing implements (especially the wheels and guides for the
- SpiroDraw designs) perfectly still while trying to draw the designs
- by hand.
-
- This program is the first release for "EyeCandy". EyeCandy01
- has been compiled with ACE (c)David Benn on a Commodore Amiga
- A2000HD computer running OS 2.1.
-
- If you get any enjoyment or productive use from this program, drop
- me a line. I'd like to receive any comments and suggestions you
- may have and of course, if you REALLY like it, and you find yourself
- using this program to entertain yourself or friends or family with
- it, stick a little $ (how about $5.00 US) in the envelope - please!).
- Thanks go to Bill from Arizona who was the first send some $ my way.
- He has restored my faith in the "shareware" concept!
-
- Charles E. Kenney, II
- 4 Burbank Circle
- Framingham, MA 01701
- USA
- phone: (508) 877-5959
- or: (508) 877-4771
-
- If you send me a disk and a stamped self-addressed disk mailer,
- I will also send you the latest version of "EyeCandy" and any
- other programs I may have since written.
-
- This program may be freely distributed as long as this document
- accompanies the program AND no more than a _small_ fee is charged
- for copying and or distribution.
-
- Thanks.
- -ck.
-
- P.S. Thanks again to David Benn for his wonderful compiler, "ACE".
-
-
- II. Program Set-up and Menu Descriptions
- ----------------------------------------
-
- "EyeCandy" starts with default settings for each design type,
- except for the SpiroDraw "mode", which has 8 sets of settings
- in a "cyclable" memory buffer (See "Last" gadget below). This
- was doen so the user can see immediately what "EyeCandy" can
- do without having to set any initial parameters. Following
- are descriptions of the various menus and resultant actions:
-
- The "Project" menu contains the "standard" Load and Save functions.
- The only design parameters that are complicated enough to warrant
- saving (in my opinion) are for the SpiroDraw designs, so I have
- implemented "Load" and "Save" only for the SpiroDraw data.
-
- Load - The user may load data for a previously saved design.
- Data files for SpiroDraw designs always have a ".spd"
- extension. If the user does not include a ".spd" file
- extension, "EyeCandy" will add it automatically.
- The current SpiroDraw data is "backed-up" in a memory
- buffeer before the data is loaded (See "Last" gadget above).
- "LIBS:arp.library" must be installed on WB 1.3 systems
- in order for the "Load" MENU item to function.
-
- Save - The user may save data for a SpiroDraw design if desired.
- If the user does not include a ".spd" file extension,
- "EyeCandy" will add it automatically.
- "LIBS:arp.library" must be installed on WB 1.3 systems
- in order for the "Save" MENU item to function.
-
- Draw - Draws the selected design for the data and other
- parameters currently in effect for the currenly
- selected design. The may interrupt a design which
- is in the process of being drawn with the famous
- 'CTRL-C' keys or by clicking the Left Mouse Button.
-
- About - A little message about "EyeCandy" and its author.
-
- Quit - Well... This is how to exit "EyeCandy"!
-
-
- The "Design" menu contains all the functions
- the user needs to set the design parameters:
-
- The first MENU item is a checkmarked designator for the design
- which is currently selected. Choosing this item brings up
- a little window which allows the user to specify the design
- "mode" the program should invoke. Currently available designs
- are "SpiroDraw", "YarnBall" and "CircleStar".
-
- Set Data...
- (SpiroDraw) - Invokes a screen which allows the user to specify
- the three "size" parameters for the SpiroDraw
- design: Guide Ring, Drawing Wheel and Pen-Hole
- (see "A few words about "SpiroDraw" below for a
- description of these).
- Clicking on the "In/Out" gadget cycles the placement
- of the Drawing Wheel to inside-only, outside-only or
- both on the Guide Ring.
- Clicking on the "Last" gadget "recalls" the last
- data from the "design buffer". The design buffer
- is capable of holding 8 sets of design data -
- (Guide Ring, Drawing Wheel and Pen-Hole parameters).
- When the user clicks on this gadget, the previous
- data in use before the current data is placed into
- the current data and the other 7 sets of data are
- "bubbled-up", with the current data being "sent down"
- to the 8th set of data. Note that any time the user
- modifies the current data by loading new data from
- disk, by exiting the "Set Data..." window after
- making changes, or by selecting the "Random" gadget,
- (see below), the current data is "backed-up" to the
- "1st" buffer, the "1st" to the "2nd", the "2nd" to
- the "3rd", etc. The "8th" set of data simply gets
- "pushed off the cliff" and is lost forever.
- Clicking on the "Random" gadget randomizes the design
- sizes for the Guide Ring, Drawing Wheel and Pen-hole.
- The current data is "backed-up" before the data is
- randomized (See "Last" gadget description above).
- Clicking on the "Done" gadget exits this function
- and the user is asked whether or not to draw the
- new design using the new design parameters.
-
- (YarnBall) - Invokes a screen which allows the user to specify
- the two design parameters required for drawing the
- "YarnBall" design: Size and number of spokes.
- This design is easier seen than explained so I
- will leave it to the user to experiment.
-
- (CircleStar) - Invokes a screen which allows the user to specify
- the three design parameters required for drawing
- the "CircleStar" design: Size, number of spokes
- and number of "radial" divisions. Again, this
- design is easier seen than explained so I will
- leave it to the user to experiment.
-
- Wheel Inside (SpiroDraw only) - If this Menu item is "check-marked",
- a Drawing Wheel is placed inside the Guide Ring for
- subsequent SpiroDraw designs. Selecting this MENU
- toggles between "check-marked" and "UN-check-marked".
- If the user attempts to "UN-check-mark" this MENU
- item when the "Wheel Outside" MENU item has the
- "UN-check-marked" status, then the "Wheel Outside"
- MENU item will be automatically "check-marked" since
- there has to be at least one wheel which is always
- "check-marked", whether it is inside or outside.
-
- Wheel Outside (SpiroDraw only) - If this Menu item is "check-marked",
- a Drawing Wheel is placed outside the Guide Ring for
- subsequent SpiroDraw designs. Selecting this MENU
- toggles between "check-marked" and "UN-check-marked".
- If the user attempts to "UN-check-mark" this MENU
- item when the "Wheel Inside" MENU item has the
- "UN-check-marked" status, then the "Wheel Inside"
- MENU item will be automatically "check-marked" since
- there has to be at least one wheel which is always
- "check-marked", whether it is inside or outside.
-
- Detail... (SpiroDraw only) - Invokes a window which allows the
- user to specify how detailed the drawn design will be.
- Clicking on the "Next" gadget cycles through all possible
- choices (each selection also causes "SpiroDraw" to take
- progressively longer to draw the design):
-
- DOTTY - plots dots at visible intervals rather than
- drawing a continuous line while the design
- is being drawn (dots may be connected with
- a line between each dot - see the description
- for the "Connect Dots" menu item below).
-
- SKETCHY - plots dots at smaller intervals than "DOTTY"
-
- COARSE - plots dots at _really_ small intervals.
-
- FINE - plots dots so close together that they are
- a continuous line when "SpiroDraw" draws.
-
- Connect Dots (SpiroDraw only) - The user may "check-mark" this menu
- item to connect the dots that are plotted with a line
- to give the design a continuous-line appearance. This
- menu item is automatically disabled if the user selects
- "FINE" in the "Detail..." menu (see above) since the
- design will already have a continuous appearance.
-
- Clear Canvas - The user may "check-mark" this menu item to clear
- the drawing "canvas" before drawing each design.
- If this menu item is not "check-marked" then many
- designs can be drawn "on top of" each other. Also,
- if this menu item is "UN-check-marked", then any
- design in progress that is interrupted (with CTRL-C
- or a LEFT-MOUSE-BUTTON click) will be left on the
- screen unfinished.
-
-
- The "Preferences" menu contains the following functions:
-
- Ask Save (SpiroDraw only) - When data is changed, the user is
- asked whether or not to save the "old" data if this
- menu item is "check-marked". "UN-check-marking" this
- menu item stops "EyeCandy" from asking each time the
- data is changed. "EyeCandy" _always_ asks the user
- whether to save the new data (if it has been changed)
- when the "Quit" menu item is selected, regardless of
- the "check-mark" status of this menu item. The file,
- "LIBS:arp.library" must be installed on WB 1.3 systems
- in order for the "Ask Save" MENU item to be enabled
- (See also "Load" and "Save" above).
-
- Show Activity (SpiroDraw only) - When this item is "check-marked",
- a running '% completed' is displayed in the upper left
- corner of the 'drawing window'. This is done to show that
- "EyeCandy" is "doing something" and to give the user an
- idea of how long it will take to draw the design. It is
- difficult to see the design actually being drawn sometimes
- if the Pen-Hole value is very near zero or if the sizes of
- the Guide Ring and the Drawing Wheel are nearly equal.
- There are instances when the "% completed" message would
- ruin the appearance of the design so to avoid this, the
- user may "UN-check-mark" this "Show Activity" menu item.
-
- Visual Round
- Screen Round - This is a "cycling menu" function. Each time
- this menu item is selected the function is
- "swapped" to the other selection,
- "Visual Round" to "Screen Round" and vice versa.
-
- If the user selects "Visual Round", the design will be
- drawn with a perfectly circular appearance on the screen.
- If the user selects "Screen Round", the design will be
- drawn with a slightly oval appearance on the screen, but
- this is a useful selection if the design is "saved" as
- an IFF file (using a "screen-capture-to-IFF-file" program
- and then imported into a paint package capable of animation.
- Once this is done, the design can be rotated while still
- maintaining its "roundness". This has been used successfully
- with DPaint.
-
- Resolution... - Invokes a window which allows the user to specify
- different screen resolutions. Clicking on the
- "Next" gadget cycles through all possible choices:
-
- If the user selects "LOW" then "SpiroDraw" will
- change to low resolution (320 x 200 screen).
- If the user selects "MEDIUM" then "SpiroDraw" will
- change to medium resolution (640 x 200 screen).
- If the user selects "HIGH" then "SpiroDraw" will
- change to high resolution (640 x 400 screen).
-
-
- III. A few words about "SpiroDraw"
- --------------------------------------
-
- The Guide Ring was, for the child's toy, the plastic ring with
- "gearing" on each side that was so hard to hold perfectly in place
- on the paper while winding the Drawing Wheel around the inside or
- outside of the Guide Ring. Even pinning the Guide Ring down through
- the paper onto cardboard was never much help either! "SpiroDraw"
- holds the Guide Ring in place quite nicely though. "SpiroDraw"
- always places the Guide Ring in the center of the screen.
-
- The Drawing Wheel was, for the child's toy, the plastic "wheel"
- with "gearing" (to mesh with the Guide Ring) that was so hard to keep
- engaged to the gearing of the Guide Ring while winding the Drawing
- Wheel around the inside or outside of the Guide Ring. If you went
- too slowly you would sometimes get "stuck" due to the "cam" effect
- of the pen-hole in the Drawing Wheel that you had chosen, especially
- if you chose a pen-hole way out near the edge of the Drawing Wheel!
- If you went too fast the the gearing between the Drawing Wheel and
- the Guide Ring would slip or disengage altogether and you would draw
- a nice ugly, frantic and ruinous line across your design! This was
- REALLY frustrating, especially if you were "almost done"... and only
- 6 years old! "SpiroDraw" will never know gear slips and getting
- stuck by the "cam" effect!
-
- The "Pen-Hole" was, for the child's toy, the little hole in the
- Drawing Wheel (there were lots of these little holes in each wheel)
- that you would put your pen into which would determine the "character"
- of the design - the holes closest to the center of the Drawing Wheel
- would produce "circular" designs (for "SpiroDraw", small values for
- the Pen-hole distance from the center of the Drawing Wheel), and the
- holes closest to the edges of the Drawing Wheel would produce very
- "spirally" designs (for "SpiroDraw", large values for the Pen-hole
- distance from the center of the Drawing Wheel). Note that "SpiroDraw"
- allows a distance for the Pen-hole which is larger than the radius of
- the Drawing Wheel but only within practical limits depending upon whether
- the 'current' screen resolution is LOW, MEDIUM or HIGH. You may go ahead
- and TRY putting a pen into a hole on the Drawing Wheel that is larger
- than the Drawing Wheel itself using the child's toy!
-
-
- IV. A few words about "YarnBall" and "CircleStar"
- --------------------------------------------------
-
- Many (and I _do_ mean many) years ago, while doodling in Art
- class at school I came upon (or was shown by somebody) these two
- "designs". Remembering the fun I had drawing these by hand, I
- decided to implement them into this program. Hopefully I won't
- be the only one now to get some enjoyment from doodling with these
- two little designs.
-
-
- V. What about futures?
- -----------------------
-
- It was fun to see some "EyeCandy" types of designs in the
- June, 1994 issue of AmigaWorld article (Part 2) about programming
- in "C" and I was thinking of adding exactly these types of designs
- into "EyeCandy" as I was completing my implementation of "YarnBall"
- and "CircleStar" into "EyeCandy". These will probably be the next
- additions. Comments and suggestions are also quite welcome.
-
-
- VI. A "useful" way to use this program
- (depending on your definition of "useful")
- -----------------------------------------------
-
- Here is a neat little tidbit for using this program with a
- Paint package (if you would like to play with or animate any of
- your designs that you generate with this program):
-
- For DPaint, anyway, this works nicely...
-
- 1. Start up a "screen-saver" program "in the background"
- which is capable of saving a screen as an IFF file.
- I have used "PictSaver" by Preben Nielsen successfully.
-
- 2. Generate your design after "check-marking" the menu item,
- "Screen Roundness". This is known to work for DPaint.
-
- 3. Once the design has finished being generated, execute
- whatever key sequence is required by the "screen saver"
- program you have and save the design as an IFF file.
-
- 4. Call up your Paint package and do whatever. I have
- had fun "rolling" my designs across the screen or
- "into the distance" or even using the design as a
- circular border for other brushes, etc. Be creative!
-
-
- The following history also appears verbatim as a comment
- at the top of the source program since virtually any significant
- change to the source will result in a significant change to the
- documentation and vice versa. Also, if you have this user doc
- and not the source, you can see any revision information and
- when it is/was implemented. I have left the "SpiroDraw" history
- notes in for the user's reading pleasure even though this program
- has since been renamed to "EyeCandy".
-
- Note that as of the first writing of this document
- (for SpiroDraw01), 94-02-17, this little program was
- only 3 days shy of its 10th birthday!
-
- Great advertising hook - "A DECADE IN THE MAKING!"
-
- PROGRAM REVISION HISTORY (in reverse chronological order)
- ----------------------------------------------------------------
- Added the option to Save the screen as an IFF file
- (if this capability is added to ACE) NOT YET!
- Miscellaneous fine-tuning and user interface enhancing 94-06-26
- Added "not implemented!" messages if "Load"/"Save" is
- attemted from CircleStar/YarnBall since design data
- is simple enough to not really need Load and Save
- Added a "Send comments" and "ShareWare" messages in
- case users campaign to get Load/Save functionality
- added for "YarnBall" and "CircleStar" 94-06-16
- Uploaded SpiroDraw06 to AMINET and stopped working on
- "SpiroDraw06". Subsequent Spirodraw enhancements
- will be done _only_ in the SpiroDraw functionality
- of the new program, "EyeCandy**" 94-06-16
- Added "CircleStar" code 94-06-15
- Completed "YarnBall" code 94-06-15
- Began adding "YarnBall" code 94-06-14
- EyeCandy01 will contain various additional designs
- along with the SpiroDraw design functionality 94-06-14
-
- ---- "Froze" SpiroDraw06 and COPIED TO EyeCandy01 ---- 94-06-14
-
- Moved the "Set Data..." text gadgets back to the upper
- and lower edges of the screen and lengthened the
- slider gadgets in the HIRES screen. 94-06-03
- Added SIZE back into DIM variables 94-06-03
- Uploaded to AMINET as SpiroDraw05 94-05-31
- Check for WB 2.x or WB 1.3 and if WB 1.3 make sure that
- arp.library exists in the user's LIBS: directory.
- Do not allow "Save","Load" and do not enable the
- "Ask Save" menu if WB 1.3 and no arp.library 94-05-28
- Re-enable "Connect Dots" if switching from "FINE"
- details selection to any other detail selection 94-05-28
- Uploaded to AMINET as SpiroDraw04 94-05-25
- Fixed HIGH to LOW/MEDIUM Drawing Wheel size scaling bug 94-05-25
- Cleaned up tracking of changed data and backup buffers 94-05-24
- Added "About" MENU item 94-05-24
- Squished Gadgets closer together in HIGH Resolution
- "Set Data" window 94-05-24
- Increased width of slider gadgets for HIGH resolution 94-05-24
- Moved "Random", "Last" from MENUs to "Set Data" window
- and re-positioned other GADGETS to accommodate them 94-05-23
- Changed window title from
- "Screen Res" to "Screen Resolution" 94-05-23
- Added " " between SpiroDraw and Data in Set Data window 94-05-23
- Moved "Set Detail" and "Screen Resolution" windows
- down 5 pixels 94-05-23
- Automatically add ".spd" to end of user load data file
- name if not specified by the user. 94-05-23
- Added Left-Mouse-Button-Click to interrupt design-draw 94-05-23
- Removed the cute spinning anim and replaced with % done 94-05-23
- Fixed a 'bug'. GADGETS were getting messed up with
- DIM g_msg$(8) SIZE 4
- changed to DIM g_msg$(8) 94-05-23
- Uploaded to AMINET as SpiroDraw03 94-05-20
- Finished debugging user break capability 95-05-18
- Compiled using latest version of ACE which fixed a bug 94-05-15
- Began debugging user-break capability 94-05-11
- Received first shareware $ from W. Hagan (thanks Bill!) 94-05-12
- Added ^C user-break capability to spiro_draw subroutine 94-05-11
- Added Declarations of variables 94-04-30
- Uploaded to AMINET as SpiroDraw02 94-03-13
- Rewrite Documentation for Menus and new features 94-03-13
- All the new stuff 94-03-13
- Added more robust file-handling 94-03-11
- Added more pretty-up code 94-03-11
- Added switches to ask to save data every time
- data is changed or to not ask and whether to show
- the little activity loop while design is drawn 94-03-11
- Added activity loop while design is being drawn 94-03-11
- Added memory buffer for 8 designs 94-03-11
- Added some more error handling and pretty-up code 94-03-10
- Added RANDOMIZATION of design parameters 94-03-09
- Debugged more GADGET code 94-03-09
- More GADGET coding 94-03-09
- Debugged new gadget code 94-03-08
- Coded "design size" parameters using GADGETs 94-03-08
- Coded "resolution" parameter using GADGETs 94-03-07
- Coded "detail" parameter using GADGETs 94-03-07
- Ask the user to draw immediately upon reading a .spd 94-03-07
- Added more robust File I/O error handling...
- ... could still use more 94-03-07
- Ability to choose (and now change) SCREEN resolution
- "pulled" into the main program 94-03-06
- MENU and code to Save/Load design parameters 94-03-04
- Added Dummy MENUs for Load and Save 94-03-04
- Added additional design types skeleton code and menus 94-03-04
- Replaced "hack" user inputs with MENU constructs
- This would enable the user to set up all the
- "design" parameters and change only those
- parameters desired while maintaining all the
- others (user doc changed too) 94-03-03
- UPLOADED to Aminet as SpiroDraw01 94-02-25
- Cleaned-up the plot loop, eliminated some "goto"s 94-02-21
- Cleaned up screen and window sizes, user input text 94-02-20
- Fixed new "revolutions" bugs (variable rvlv)
- introduced while cleaning-up the code 94-02-19
- Program now runs from WorkBench 94-02-17
- The user is now asked for "Pen-hole distance"
- before being asked "inside, outside, or both"
- This order seemed to be more logical after
- writing the documentation 94-02-17
- Finally wrote the documentation 94-02-17
- More refinement of programming constructs 94-02-16
- Refinement of programming constructs 94-02-15
- Revived from my AmigaBasic hacks and converted
- to ACE (great package, David Benn!) 94-02-14
- Converted from C-64 SIMON'S BASIC to AmigaBasic 87-11-20
- Program initiated and hacked into working order
- using SIMON'S BASIC for the Commodore 64 (tm) 84-02-20
-